#!/usr/bin/env python3
"""
小呆模型应用平台启动脚本
在项目根目录运行此脚本来启动后端服务
"""

import os
import sys
import subprocess

def main():
    # 获取当前脚本所在目录（项目根目录）
    project_root = os.path.dirname(os.path.abspath(__file__))
    backend_dir = os.path.join(project_root, 'backend')
    
    # 检查backend目录是否存在
    if not os.path.exists(backend_dir):
        print("❌ 错误：找不到backend目录")
        sys.exit(1)
    
    # 检查app目录是否存在
    app_dir = os.path.join(backend_dir, 'app')
    if not os.path.exists(app_dir):
        print("❌ 错误：找不到backend/app目录")
        sys.exit(1)
    
    print("🚀 启动小呆模型应用平台...")
    print(f"📁 项目根目录: {project_root}")
    print(f"📁 后端目录: {backend_dir}")
    
    # 切换到backend目录
    os.chdir(backend_dir)
    
    # 启动uvicorn服务器
    try:
        cmd = [
            sys.executable, "-m", "uvicorn", 
            "app.main:app", 
            "--reload", 
            "--host", "0.0.0.0", 
            "--port", "8000"
        ]
        
        print("🔧 启动命令:", " ".join(cmd))
        print("📖 API文档将在: http://localhost:8000/docs")
        print("🌐 前端页面将在: http://localhost:8000")
        print("=" * 50)
        
        # 运行服务器
        subprocess.run(cmd, check=True)
        
    except KeyboardInterrupt:
        print("\n👋 服务器已停止")
    except subprocess.CalledProcessError as e:
        print(f"❌ 启动失败: {e}")
        sys.exit(1)
    except Exception as e:
        print(f"❌ 未知错误: {e}")
        sys.exit(1)

if __name__ == "__main__":
    main() 